package com.zjj.lbw.interview.array;

/**
 * @author zhanglei.zjj
 * @description 子数组最大平均数-滑动窗口
 * 给一个整数数组，找出平均数最大且长度为 k 的下标连续的子数组，并输出该最大平均数。
 * @date 2023/9/2 18:03
 */
public class FindMaxAverage {
    public static double findMaxAverage(int[] nums, int k) {
        double sum = 0d;
        for (int i = 0; i < k; i++) {
            sum += nums[i];
        }

        // 从K位置往后遍历，如果 本次滑动 增加的元素 > 滑动窗口刚刚滑过去的元素
        // 那本次连续k子数组的和 肯定在上一次基础啥上创新高
        for (int i = k; i < nums.length; i++) {
            if (nums[i] > nums[i - k]) {
                sum = sum + nums[i] - nums[i - k];
            }
        }

        return sum / k;
    }
}
